home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 6: Level 6
/
17 Bit - Level 6 (1998)(Epic Marketing)[!].iso
/
quartz
/
q1082.dms
/
q1082.adf
/
doc
/
Neuigkeiten
< prev
next >
Wrap
Text File
|
1991-07-18
|
7KB
|
132 lines
Veränderungen in Frank Wübbeling's Amiga-Portierung von `FIG'
-------------------------------------------------------------
- Das Programm ist gegenüber der Erstversion wesentlich kürzer
geworden.
- Zur Übersetzung habe ich den SAS/C Compiler 5.10a benutzt und so
nebenbei einen Haufen von Inkonsistenzen beseitigt. Da waren
Variablen mehrfach definiert, beim Anfordern von Resourcen wurde
nicht darauf geachtet, ob die Anforderung erfolgreich war, etc.
Da die Libraries des SAS/C Compilers teilweise nicht die Features
unterstützen, wie sie der Aztec `C' Compiler bietet, mußte ich eine
Handvoll Funktionen umschreiben, bzw. komplett neu schreiben
(welcher der beiden Compiler hält sich denn jetzt eigentlich an den
ANSI- und welcher an den Unix-Standard?).
Da mir beim härteren Testen mit `MungWall' mehrfach auffiel, daß
das Programm seinen angeforderten Speicher teilweise über die
angegebenen Grenzen hinaus überschrieb, habe ich die Routinen zur
Speicherverwaltung neu geschrieben. Jedem angeforderten
Speicherblock wird zusätzlich noch ein kleines bißchen mehr Speicher
angehängt, als angefordert war.
- Um das Risiko von sporadischen Systemabstürzen zu reduzieren, wurde
das Programm mit dem Startup-Code `catch.o' gelinkt.
- Die exception-gesteuerte Fensterabfrage und das `EasyWindows'-System
sind nicht mehr vorhanden. Ich habe alle verwendeten Routinen neu
geschrieben und dem bestehenden Amiga-Standard angepaßt.
- Der Bildschirm wird nicht mehr von einem einzigen Fenster
`bevölkert', sondern von zweien, sodaß die häßlichen Nebeneffekte,
wie das unabsichtliche Löschen der Bedienfelder, der Vergangenheit
angehören.
- Die Bedienelemente werden korrekt selektiert, es ist nicht mehr
möglich durch doppeltes Selektieren den aktuellen Zeichenmodus
`verschwinden' zu lassen.
- Beim Anklicken eines Bedienelementes, das die aktuelle
Zeichenfunktion verändert, wird die Bearbeitung der letzten
Zeichenfunktion sofort beendet. Dies verhindert das Entstehen von
`Vektorleichen', die nie wieder vom Bildschirm zu löschen sind.
- Die Position des Mauszeigers wird permanent angezeigt, sowohl in
Punkten als auch in Zentimetern. Die Koordinatenanzeige wird wie
auch das Zoom-Fenster bei jeder vierten Mausbewegung auf den
neuesten Stand gebracht. Dies spart Rechenzeit und läßt die Maus
nicht ganz so träge über den Bildschirm `torkeln'. Wer trotzdem bei
jeder Mausbewegung genau wissen/sehen will, wo sich die Maus gerade
befindet, der sollte eine der Shift-Tasten gedrückt halten.
- Ich habe die intern verwendete Konstante zur Umrechnung von Punkten
in Inches verändert. Sie sollte jetzt der Bildschirmauflösung des
Amigas näher kommen (67 Punkte statt 80 Punkte sollen einem Inch
entsprechen). Zusätzlich wird das bei Bedarf zuschaltbare Raster
nicht mehr in halben Inches bzw. Viertel-Inches angezeigt, sondern
in Zentimetern (ein halber Zentimeter, bzw. ein Zentimeter).
- Es gibt eine Funktion zum Vergrößern der 40 Punkte um den
Mauszeiger. Diese Funktion ist nur unter Kickstart 2.0 oder
Nachfolgeversionen verfügbar, da ich es doch nicht geschafft habe,
mir eine halbwegs schnelle Vergrößerungsroutine auszudenken :-(
Die Größe des Fensters bestimmt wie weit der Ausschnitt unter der
Maus vergrößert wird. Das Kreuz im Fenster bezeichnet die aktuelle
Position des Mauszeigers. Leider ergeben sich Rundungsfehler bei
der Umrechnung und Vergrößerung, sodaß die Mausposition nicht immer
korrekt durch den Schnittpunkt des Kreuzes angezeigt wird: je
größer das Fenster gemacht wird, desto korrekter wird die Position
angezeigt.
- Die Text-Funktion übernimmt jetzt auch den erweiterten Zeichensatz
des Amiga (`ECMA 94 Latin 1', wird auch von DEC, NeXT und Sun
unterstützt). TeX, bzw. LaTeX werden damit Probleme bekommen, es
sei denn man hat seine Formatfiles dahingehend geändert, daß die
Zeichen in ein für TeX lesbares Format gewandelt werden (z.B. über
`ecma_94_latin_1.sty').
- Statt weiterhin eine Maus mit drei Tasten zu `emulieren' habe ich
die einzige Funktion, die eine dritte Maustaste erfordert hätte (das
Pop-Up-Menü) durch Ändern des Pop-Up-Menüs in ein Pull-Down-Menü
überflüssig gemacht. Hiermit entspricht die `mittlere' Maustaste
der rechten Maustaste. Das Pull-Down-Menü wird immer dann
angezeigt, wenn sich der Mauszeiger außerhalb des Zeichenfensters
befindet (z.B. im Bedienfeld oder über dem Drag-Bar des
Bildschirms).
- Alle im Menü angezeigten Funktionen werden auch wirklich
unterstützt.
- Der Menüpunkt `Save as BITMAP' speichert den Inhalt des
Zeichenfensters als IFF-ILBM-Datei anstatt im Sun-Rasterformat.
- Wo immer es mir sinnvoll erschien habe ich die Funktionen von Bruce
Dawson's und Colin Fox' req.library verwendet.
- Fast alle Menüpunkte wurden mit Kurzkommandos (`Shortcuts' versehen.
Hiermit tut sich ein neues Problem auf: da `Fig' die rechte
Maustaste bei der Benutzung der Zeichenfunktionen selbst belegt,
können auch die Menüpunkte nicht mehr über Amiga-Taste+<Taste>
ausgelöst werden (ein unangenehmer Seiteneffekt). Um dennoch mit
den Kurzkommandos arbeiten zu können, lassen sie sich jedoch auch
ohne Betätigung der Amiga-Taste auslösen (jedoch nicht, während der
Textmodus aktiv ist).
- Läuft das Programm unter Kickstart 2.x, so ergibt sich die
Möglichkeit, die Auflösung des Bildschirms zu verändern. Hierzu
existiert ein Menüpunkt, über dessen Anwahl man in die
Auflösungsauswahl gelangt. Durch Anklicken eines Auswahlfeldes kann
die Auflösung bestimmt werden, in der Bildschirm von `Fig' BEIM
NÄCHSTEN Start des Programmes geöffnet wird. Die Auflösung wird in
Environment-Variablen gespeichert.
- Der auf dem Bildschirm zu verwendende Font kann nicht mehr
ausgewählt werden.
- Die Breite des Zeichenfensters ist nicht mehr von Hand zu setzen.
- Ich habe den `Magnet Mode' wieder aktiviert.
Autor:
------
Olaf `Olsen' Barthel
Brabeckstraße 35
D-3000 Hannover 71
Bundesrepublik Deutschland
Z-Net: O.BARTHEL@A-Link-H
Sub: o.barthel@a-link-h.zer.sub.org